Skip to main content

Mysql & Mariadb

Installation du Serveur MariaDB

sudo apt install mariadb-server

Par défaut, le mot de passe administrateur MySQL/MariaDB sera le même que celui de votre utilisateur système. Pour personnaliser la sécurisation de notre base de données, voici la commande à exécuter :

  • mysql_secure_installation

    Change the root password [Y/n] => y // changez le mot de passe
    New password // Entrez votre mot de passe « root »
    Remove anonymous users [Y/n] => y // Désactivez ensuite les connexions anonymes
    Disallow root login remotely? [Y/n] => y // Désactivez la connexion en « root » depuis une connexion distante
    Remove test database and access to it? [Y/n] => y // effacer la base de données de test créée par défaut
    Reload privilege tables now? [Y/n] => y // Il reste à charger les nouveaux paramètres

  • Pour tester l'accès à notre base de données, voici la commande à utiliser dans notre terminal :

mysql -u root –p
show databases
exit

Percona-Toolkit Installation

Percona Toolkit, largement utilisé dans les environnements MySQL et Percona Server, est une collection d'outils qui aide les administrateurs de bases de données à gérer leurs tâches quotidiennes. Ces outils offrent aux utilisateurs flexibilité et contrôle en matière de performances, de fiabilité et de maintenance.

sudo apt install percona-toolkit

  • pt-show-grants

    Copier la ligne mysql et accordez les autorisations à l'utilisateur student.

GRANT ALL PRIVILEGES ON *.* TO `student`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION;

Désormais, student peut se connecter directement à MySQL sans avoir besoin d'être root.**

Mysql socket & reseau

Note : Vous pouvez basculer vers l'utilisateur MySQL en utilisant la commande suivante :

su – mysql -s /bin/bash

mysql : Se connecte directement en utilisant le socket.
mysql -h localhost : Se connecte via le réseau.

mysql -u test -p		# Se connecter avec le nom d'utilisateur test, entrer le mot de passe (socket)
mysql -u test -h localhost -p # Se connecter avec le nom d'utilisateur test, entrer le mot de passe (réseau)

Création du user et database

Nous avons créé un utilisateur nommé "Incubator" et avons également créé une base de données nommée "incubator". Ensuite, nous avons accordé à l'utilisateur "incubator" tous les privilèges dans la base de données "incubator".

CREATE USER 'incubator'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE incubator;
GRANT ALL PRIVILEGES ON incubator.* TO 'incubator'@'localhost';

Sauvegarder Les Databases

mysqldump pingpong > dump.sql  #Pour sauvegarder
mysql < dump.sql # Pour restaurer
sftp student@fdfkdfdf.
get dump.sql # Téléchargez ce fichier via SSH

Nous pouvons automatiser le processus de sauvegarde des données MySQL avec un script simple de trois manières :

Exemple de fichier backup.sh :

#!/bin/bash

# Spécifiez les informations de connexion à la base de données
DB_NAME="pingpong"

# Spécifiez le répertoire de sauvegarde
BACKUP_DIR="/home/student/backup"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"

# Commande pour effectuer la sauvegarde et la compression
mysqldump -A | gzip > $BACKUP_FILE

# Supprimer les sauvegardes de plus de 10 jours
find -name '*.sql.gz' -mtime +10 -delete-

# Vérifiez si la sauvegarde et la compression ont réussi
if [ $? -eq 0 ]; then
echo "Sauvegarde de toutes les bases de données effectuée avec succès dans $BACKUP_FILE"
else
echo "Échec de la sauvegarde et de la compression"
exit 1
fi
  • Ajouter une tâche cron.
    S'exécute toutes les heures
    0 * * * * /chemin/vers/votre/backup.sh